/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package LogicaNegocio.Controlador;

import AccesoDatos.Persistencia.Manager.ManagerEmpleado;
import GUI.Jefe.AdminBibliotecarios.PanelDesvincularBibliotecario;
import LogicaNegocio.Empleados.Bibliotecario;
import javax.swing.JOptionPane;

/**
 * Esta clase en java permite el control de eventos
 * para la desvinculacion de bibliotecarios en el sistema.
 *
 * @author sebaxtian
 * Archivo: ControlDesvincularBibliotecario.java
 * @version 1.0
 * Fecha: dom may  9 03:15:09 COT 2010
 */



public class ControlDesvincularBibliotecario {

    //Atributos de clase
    private PanelDesvincularBibliotecario panelDesvincular;
    private ManagerEmpleado gestorEmpleado;
    private Bibliotecario bibliotecario;
    private boolean encontrado;


    public ControlDesvincularBibliotecario(PanelDesvincularBibliotecario panelDesvincular) {
        this.panelDesvincular = panelDesvincular;
        gestorEmpleado = new ManagerEmpleado();
        encontrado = false;
    }

    public void buscarBibliotecario() {
        try {
            int cedulaBibliotecario = Integer.parseInt(panelDesvincular.textFieldBuscar.getText());
            bibliotecario = gestorEmpleado.obtenerBibliotecario(cedulaBibliotecario);
            //muestra los datos
            panelDesvincular.textFieldCedula.setText(bibliotecario.getCedula()+"");
            panelDesvincular.textFieldDireccion.setText(bibliotecario.getDireccion());
            panelDesvincular.textFieldPrimerApellido.setText(bibliotecario.getPrimerApellido());
            panelDesvincular.textFieldPrimerNombre.setText(bibliotecario.getPrimerNombre());
            panelDesvincular.textFieldSegundoApellido.setText(bibliotecario.getSegundoApellido());
            panelDesvincular.textFieldSegundoNombre.setText(bibliotecario.getSegundoNombre());
            panelDesvincular.textFieldTelefono.setText(bibliotecario.getTelefono());
            panelDesvincular.textFieldUniversidad.setText(bibliotecario.getUniversidad());
            panelDesvincular.checkBoxVinculado.setSelected(bibliotecario.getVinculado());
            System.out.println("Vinculado : "+bibliotecario.getVinculado());
            //bibliotecario encontrado
            encontrado = true;
        } catch(NumberFormatException ex) {
            JOptionPane.showMessageDialog(panelDesvincular, "El campo numero de cedula solo debe contener un valor numerico", "Numero Cedula", JOptionPane.ERROR_MESSAGE);
            encontrado = false;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(panelDesvincular, ex.getMessage(), "Error Buscar", JOptionPane.INFORMATION_MESSAGE);
            encontrado = false;
        }
    }

    public void desvincularBibliotecario() {
        if(encontrado){
            if(bibliotecario.getVinculado()){
                gestorEmpleado.desvincularEmpleado(bibliotecario.getCedula());
                limpiarCampos();
                JOptionPane.showMessageDialog(panelDesvincular, "El bibliotecario ha sido desvinculado con exito", "Desvincular", JOptionPane.PLAIN_MESSAGE);
            }else{
                JOptionPane.showMessageDialog(panelDesvincular, "El bibliotecario actualmente no esta vinculado", "Desvincular", JOptionPane.INFORMATION_MESSAGE);
            }
        }
    }
    
    private void limpiarCampos() {
        panelDesvincular.textFieldCedula.setText("");
        panelDesvincular.textFieldDireccion.setText("");
        panelDesvincular.textFieldPrimerApellido.setText("");
        panelDesvincular.textFieldPrimerNombre.setText("");
        panelDesvincular.textFieldSegundoApellido.setText("");
        panelDesvincular.textFieldSegundoNombre.setText("");
        panelDesvincular.textFieldTelefono.setText("");
        panelDesvincular.textFieldUniversidad.setText("");
        panelDesvincular.checkBoxVinculado.setSelected(false);
        panelDesvincular.textFieldBuscar.setText("");
        //encontrado
        encontrado = false;
    }
}
